Spring事务管理

您所在的位置:网站首页 nginx 部署静态页面 Spring事务管理

Spring事务管理

2023-03-12 19:17| 来源: 网络整理| 查看: 265

1.Spring有哪些事务?

(1)spring提供了编程式事务支持 TransactionTemplate;

(2)也提供了声明式事务支持 底层采用AOP实现的事务通知bean;

(3)也有注解形式的 @Transactional

2.Spring中怎么使用事务?      (1)编程式事务 在DAO中通过TransactionTemplate模板类封装事务的管理过程       (2)声明式事务(AOP配置事务通知bean):底层采用AOP思想实现,将事务的管理过程(包括事务对象的创建,提交和回滚作)封装在一个事务通知bean中,然后通过配置AOP切入点的方式来描述需要将事务通知bean所提供的事务管理服务引用给哪些核心对象/方法。    配置方式依赖于AOP的配置 为不同的方式设置不同的事务属性 ()上述execution(*  com.hofon.serviceImpl.XXXServiceImpl.*(..))表达式表示切入点为该类中的任何方法。所以当XXXServiceImpl类中方法调用时就会进行事务管理,并且当抛出RuntimeException或者Exception时(看具体方法名),自动进行回滚操作。或者(Hibernate) 声明式事务的特性 : 不需要在核心代码中编写事务的管理过程,以此将核心代码与事务管理服务动态分离。声明式事务回滚的方式 : 默认产生运行时异常时回滚,可设置(如Exception)(3)使用@Transactional注解来实现声明式事务①引入命名空间 ,在spring的配置文件中修改, beans根元素里多了三行,如下 ②配置事务管理器transactional和开始事务的注解支持         ③在接口或类的声明处 ,写一个@Transactional. 要是只在接口上写, 接口的实现类就会继承下来.在接口的实现类的具体方法上,还可以覆盖类声明处的设置.当作用于类上时,该类的所有 public 方法将都具有该类型的事务属性,同时,我们也可以在方法级别使用该注解来覆盖类级别的定义。//在service类上的注解@Transactional@Service@Scope("prototype")public class NewsServiceImpl implements NewsService { @Autowired private NewsDao nd; @Override @Transactional(readOnly=true) //为方法增加事务处理特性 public List showAllNews() { List allNewList = nd.showAllNews(); return allNewList; }}PLUS: @Transaction注解事务不起作用 1、检查你方法是不是public的  2、你的异常类型是不是unchecked异常 ,默认运行时异常RuntimeException才回滚要想所有异常都回滚,注解上面写明异常类型即可@Transactional(rollbackFor=Exception.class) 类似的还有norollbackFor,自定义不回滚的异常3、数据库引擎要支持事务,如果是MySQL,注意表要使用支持事务的引擎,比如innodb,如果是myisam,事务是不起作用的4、是否开启了对注解的解析5、spring是否扫描到你这个包,如下是扫描到com.hofon下面的包,必须是spring里配置的bean才起作用?

阅读全文 1 0 事务管理之Spring事务管理 Spring事务管理 spring事务管理 Spring事务管理 Spring事务管理 Spring事务管理 Spring事务管理 Spring事务管理 Spring 事务管理 Spring事务管理 spring 事务管理 spring 事务管理 spring 事务管理 spring事务管理 Spring 事务管理 Spring事务管理 spring事务管理 spring 事务管理 用户账户的创建和管理 Linux-内核通信之netlink机制-详解 Linux网络编程(三)多路IO转接服务器 fatal: cannot resume: .git/rebase-apply/final-commit does not exist. ArrayList和Vector的扩容机制 Spring事务管理 mysql 不是主键自增长 怎么把CAD文件转为pdf文件 git使用记录 VS x86 x64 anycpu 编译运行对照表 list嵌套需要注意的问题 Rigidbody.AddForce 跨域解决方案 & 使用angularJS和jQuery进行Ajax请求的差异 组群管理


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3